Static slicing of explicitly synchronized languages
نویسندگان
چکیده
Static analysis of concurrent languages is a complex task due to the non-deterministicexecution of processes. If the concurrent language being studied allows process synchro-nization, then the analyses are even more complex (and thus expensive), e.g., due to thephenomenon of deadlock. In this work we introduce a static analysis technique based onprogram slicing for concurrent and explicitly synchronized languages in general, and CSPin particular. Concretely, given a particular point in a specification, our technique allowsus to know what parts of the specification must necessarily be executed before this point,and what parts of the specification could be executed before it. Our technique is basedon a new data structure that extends the Synchronized Control Flow Graph (SCFG).We show that this new data structure improves the SCFG by taking into account thecontext in which processes are called and, thus, it makes the slicing process more precise.The technique has been implemented and tested with real specifications, producing goodresults. After formally defining our technique, we describe our tool, its architecture, itsmain applications and the results obtained from several experiments conducted in orderto measure the performance of the tool.
منابع مشابه
Static Interprocedural Slicing of Shared Memory Parallel Programs
Software tools for program debugging, software testing, software maintenance, and program understanding have all effectively utilized static program slicing techniques. In this paper, we present an approach to extend this capability to explicitly parallel shared memory programs written using the OpenMP standard. In particular, interprocedural static program slicing of OpenMP programs is enabled...
متن کاملA State-Based Model Slicing: A Survey
Program slicing is a source code analysis and manipulation technique, in which a subprogram is identified based on a user-specified slicing criterion. The criterion captures the point of interest within the program, while the process of slicing consists of following dependencies to locate those parts of the program that may affect the slicing criterion [Weiser 1979]. Some flavours of slicing me...
متن کاملThe MEB and CEB Static Analysis for CSP Specifications
This work presents a static analysis technique based on program slicing for CSP specifications. Given a particular event in a CSP specification, our technique allows us to know what parts of the specification must necessarily be executed before this event, and what parts of the specification could be executed before it in some execution. Our technique is based on a new data structure which exte...
متن کاملProgram Slicing for Design Automation : AnAutomatic Technique for Speeding - up HardwareDesign ,
Any opinions, ndings and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reeect the views of SRC, NSF, DARPA, or the United States Government. Abstract. Program slicing is a static program analysis technique that allows an analyst to automatically extract portions of programs relevant to the aspects being analyzed. This paper discusses a...
متن کاملA Slicing Method for Object-Oriented Programs Using Lightweight Dynamic Information
Program slicing has been used for efficient program debugging activities. Program slice is computed by analyzing dependence relations between program statements. We can divide dependence analyses into two categories, static and dynamic; the former requires little analysis costs, but the resulting slices are large. The latter has opposite characters. In this paper, we propose a program slicing m...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Inf. Comput.
دوره 214 شماره
صفحات -
تاریخ انتشار 2012